home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / BCCGRX12.ZIP / contrib / bcc2grx / src / bccgrx15.c < prev    next >
C/C++ Source or Header  |  1993-05-22  |  2KB  |  59 lines

  1. /*
  2.  *  BCC2GRX  -  Interfacing Borland based graphics programs to LIBGRX
  3.  *  Copyright (C) 1993  Hartmut Schirmer
  4.  *
  5.  *  see bccgrx.c for details
  6.  */
  7.  
  8. #include "bccgrx00.h"
  9.  
  10. /* ATTENTION : Check this definition against LIBGRX/src/interrup.h !! */
  11. # include <sys/registers.h>
  12. extern  void  int10(REGISTERS *regs);
  13.  
  14. struct palettetype __gr_EGAdef =
  15.   { size:16, colors:{EGA_BLACK, EGA_BLUE, EGA_GREEN, EGA_CYAN, EGA_RED,
  16.              EGA_MAGENTA, EGA_BROWN, EGA_LIGHTGRAY, EGA_DARKGRAY,
  17.              EGA_LIGHTBLUE, EGA_LIGHTGREEN, EGA_LIGHTCYAN,
  18.              EGA_LIGHTRED, EGA_LIGHTMAGENTA, EGA_YELLOW, EGA_WHITE}};
  19.  
  20. static struct palettetype *AktPal = &__gr_EGAdef;
  21. static struct palettetype UsrPal;
  22.  
  23. /* ----------------------------------------------------------------- */
  24. void getpalette(struct palettetype  *palette)
  25. {
  26.   _DO_INIT_CHECK;
  27.   memcpy( palette, AktPal, sizeof(struct palettetype));
  28. }
  29.  
  30. /* ----------------------------------------------------------------- */
  31. void setallpalette(struct palettetype *palette)
  32. {
  33.   int i;
  34.  
  35.   _DO_INIT_CHECK;
  36.   for (i=0; i < palette->size; ++i)
  37.     setpalette( i, palette->colors[i]);
  38. }
  39.  
  40. /* ----------------------------------------------------------------- */
  41. void setpalette(int colornum, int color)
  42. {
  43.   REGISTERS regs;
  44.  
  45.   colornum &= 0x0f;
  46.   color    &= 0x3f;
  47.   regs.ax = 0x1000;
  48.   regs.bx = colornum | (color << 8);
  49.   int10(®s);
  50.  
  51.   _DO_INIT_CHECK;
  52.   if (AktPal == &__gr_EGAdef) {
  53.     AktPal = &UsrPal;
  54.     memcpy( &UsrPal, &__gr_EGAdef, sizeof(UsrPal));
  55.   }
  56.   UsrPal.colors[colornum] = color;
  57. }
  58.  
  59.